#!/usr/bin/env python
#coding=utf-8
# coding:utf8
from jinja2 import nodes
from jinja2.ext import Extension
from models.model import Category

# from pygments import highlight
# from pygments.formatters import HtmlFormatter
# from pygments.lexers import guess_lexer, get_lexer_by_name


# 创建一个自定义扩展类，继承jinja2.ext.Extension
class CategoryExtension(Extension):
    # 定义该扩展的语句关键字，这里表示模板中的{% code %}语句会该扩展处理
    tags = set(['category_list'])

    def __init__(self, environment):
        # 初始化父类，必须这样写
        super(CategoryExtension, self).__init__(environment)

        # 在Jinja2的环境变量中添加属性，
        # 这样在Flask中，就可以用app.jinja_env.pygments来访问
        environment.extend(
            categories=self,
            categories_support=True
        )

    # 重写jinja2.ext.Extension类的parse函数
    # 这是处理模板中{% category_list %}语句的主程序
    def parse(self, parser):

        categories = Category.query_class


